#!/bin/bash

:<< eof

变量
1. 常用系统变量

$HOME
$PWD
$SHELL
$USER

env/set：查看系统环境变量

2. 自定义变量

定义变量：变量=值#等号左右无空格
撤销变量：unset 变量
声明一个静态变量：readonly 变量=value，该变量无法unset 

变量定义规则：
①  变量名称：字母数字下划线，不能数字开头，环境变量名建议大写
②  等号两侧不能有空格
③  在bash中，变量默认类型都是字符串类型，无法直接进行数值运算
④  变量如果想要有空格，需要使用引号括起来
⑤  将变量提升为全局环境变量，可供其他shell程序使用

export variable_name

3. 特殊变量 

$n n为数字，n的取值不同，变量代表的含义不同：

- 0: 代表脚本的名称
- 1-9: 代表第一到第九个参数
- {10+}: 对于大于10的参数需要用大括号包含，如${10}

$# 获取所有输入参数个数，常用于循环
$* 代表命令行中所有的参数，把所有的参数看成一个整体
$@ 代表命令行中所有的参数，把每个参数区分对待
$? 最后一条执行的命令的返回状态。0，表示上一个命令正确执行，否则，执行不正确
$$ 脚本执行时候，$$用于返回脚本执行的pid

eof

set -x

echo $0 $1 $2 $#

echo $@
echo $?
set +x

